home *** CD-ROM | disk | FTP | other *** search
/ Archive Magazine CD 1995 / Archive Magazine CD 1995.iso / discs / prog_disc / volume_8 / issue_07 / std / !STDFinder / c / textfuncs < prev    next >
Encoding:
Text File  |  1993-03-08  |  2.0 KB  |  95 lines

  1. #include "stdio.h"
  2. #include "ctype.h"
  3. #include "string.h"
  4. #include "werr.h"
  5.  
  6. #define mtnl    50
  7. #define SPACE  ' '
  8. extern int leading,trailing,wildcards;
  9.  
  10. /************** Define routine to change entire string to lower case**************/
  11. char *string_to_lower(char *string)
  12. {
  13.     char *p,return_string[mtnl];
  14.     p = return_string;
  15.  
  16.     while (*string) *p++ = tolower(*string++);
  17.     *p++ = '\0';
  18.     return (return_string);
  19. }
  20.  
  21. char *remove_wildcards(char *string)
  22. {
  23.     char *p,return_string[mtnl];
  24.     p = return_string;
  25.  
  26.     while (*string) {
  27.       if (*string != '*') *p++ = *string++;
  28.       else string++;
  29.       }
  30.     *p++ = '\0';
  31.     return (return_string);
  32. }
  33.  
  34. char *mod(char *string,int search_length)
  35. {
  36.     char return_string[mtnl],*p1,*p;
  37.     int i = 0;
  38.     int data_length = strlen(string);
  39.     if (data_length < search_length) return (string);
  40.  
  41.   if (leading && trailing) {
  42.     string++;
  43.     p = return_string;
  44.   do {
  45.     *p = *string;
  46.     i++;
  47.     p++; string++;
  48.   } while (i < data_length - 2);
  49.   *p = '\0';
  50.   return (return_string);
  51.   }
  52.  
  53.   if (leading) { /* then only want the last characters */
  54.       p1 = string + strlen(string) - search_length;  /* point to the end less the search string */
  55.       p = return_string;
  56.       }
  57.   else if (trailing) {
  58.       p1 = string;
  59.       p = return_string;      
  60.       }
  61.     do {
  62.       *p = *p1;
  63.       i++;
  64.       p++; p1++;
  65.     } while (i < search_length);
  66.   *p = '\0';
  67.   return (return_string); 
  68. }
  69.  
  70. char *to_capitals(char *string)
  71. {
  72.   char *p2,return_string[50];
  73.   int i = 0;
  74.   p2 = return_string;
  75.   while (isspace(*string)) string++; /* remove any initial leading spaces */
  76.  
  77.   while(*string) {
  78.     if (!i) *p2++ = toupper(*string++);
  79.     if (*string == SPACE) {
  80.       *p2++ = *string++;
  81.       if (*string == '(') {
  82.         *p2++ = *string++;
  83.         }
  84.       *p2++ = toupper(*string++);
  85.     }
  86.     else {
  87.       *p2++ = tolower(*string++);
  88.       i++;
  89.     }
  90.   }
  91.   *p2++ = '\0';
  92. /*  werr(0,"New string is %s.\n",return_string); */
  93.   return (return_string);
  94. }
  95.